package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebaDAOs26 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// DETALLEPREFACTURA
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<DETALLEPREFACTURA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			DetallePrefacturaDAO detallePrefacturaDAO = fabricaMySQL
					.getDetallePrefacturaDAO();
			DetallePrefacturaTO detallePrefacturaTO = new DetallePrefacturaTO();
			detallePrefacturaTO.setIdClienteRfc(1);
			detallePrefacturaTO.setConsiderado(false);
			detallePrefacturaTO.setIdOperacion(1);

			// insert

			/*
			 * if (detallePrefacturaDAO
			 * .insertDetallePrefactura(detallePrefacturaTO)) {
			 * //detallePrefacturaDAO.insertDetallePrefactura(detallePrefacturaTO);
			 * System.out .println("+++++++++++++++++++ Insertado *
			 * correctamente"); } else System.out.println("Falla en la
			 * insercion");
			 */
			// actualiza
			detallePrefacturaTO.setIdDetallePrefactura(1);
			detallePrefacturaTO.setIdClienteRfc(1);
			detallePrefacturaTO.setConsiderado(false);
			detallePrefacturaTO.setIdOperacion(2);

			resultado = detallePrefacturaDAO
					.updateDetallePrefactura(detallePrefacturaTO);
			if (resultado == 1)
				System.out.println("Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			detallePrefacturaTO = detallePrefacturaDAO
					.findByDetallePrefactura(1);
			if (detallePrefacturaTO != null) {
				System.out.println("Busqueda exitosa");
				System.out.println("DETALLEPREFACTURA");
				ImprimirTO.Imprime(detallePrefacturaTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECTDETALLEPREFACTURA +**");
			java.util.Collection<DetallePrefacturaTO> listDetallePrefacturaTO = detallePrefacturaDAO
					.selectDetallePrefactura();
			if (listDetallePrefacturaTO != null) {
				for (int i = 0; i < listDetallePrefacturaTO.size(); i++) {
					detallePrefacturaTO = ((ArrayList<DetallePrefacturaTO>) listDetallePrefacturaTO)
							.get(i);

					System.out.println("DETALLEPREFACTURA");
					ImprimirTO.Imprime(detallePrefacturaTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR CLIENTERFC");
			detallePrefacturaTO = detallePrefacturaDAO
					.selectDetallePrefacturaByClienteRfc(1);

			if (detallePrefacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEPREFACTURA");

				for (int x = 0; x < detallePrefacturaTO
						.getListIdDetallePrefactura().length; x++) {
					System.out.println("IDDETALLEPREFACTURA");
					System.out.println(detallePrefacturaTO
							.getListIdDetallePrefactura()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO
						.getListBitacoraServicioTO().length; x++) {
					System.out.println("BITACORASERVICIO");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListBitacoraServicioTO()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO.getListConsiderado().length; x++) {
					System.out.println("CONSIDERADO");
					System.out
							.println(detallePrefacturaTO.getListConsiderado()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListClienteRfcTO().length; x++) {
					System.out.println("CLIENTERFC");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListClienteRfcTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR CLIENTERFC CONSIDERADO");
			detallePrefacturaTO = detallePrefacturaDAO
					.selectDetallePrefacturaByClienteRfcConsiderado(1, false);

			if (detallePrefacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEPREFACTURA");

				for (int x = 0; x < detallePrefacturaTO
						.getListIdDetallePrefactura().length; x++) {
					System.out.println("IDDETALLEPREFACTURA");
					System.out.println(detallePrefacturaTO
							.getListIdDetallePrefactura()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO
						.getListBitacoraServicioTO().length; x++) {
					System.out.println("BITACORASERVICIO");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListBitacoraServicioTO()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO.getListConsiderado().length; x++) {
					System.out.println("CONSIDERADO");
					System.out
							.println(detallePrefacturaTO.getListConsiderado()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListClienteRfcTO().length; x++) {
					System.out.println("CLIENTERFC");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListClienteRfcTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECTDETALLEPREFACTURA POR REGISTRO +**");
			listDetallePrefacturaTO = detallePrefacturaDAO
					.selectDetallePrefacturaByRegistro("tme840315kt6");
			if (listDetallePrefacturaTO != null) {
				for (int i = 0; i < listDetallePrefacturaTO.size(); i++) {
					detallePrefacturaTO = ((ArrayList<DetallePrefacturaTO>) listDetallePrefacturaTO)
							.get(i);

					System.out.println("DETALLEPREFACTURA");
					ImprimirTO.Imprime(detallePrefacturaTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECTDETALLEPREFACTURA POR REGISTRO CONSIDERADO+**");
			listDetallePrefacturaTO = detallePrefacturaDAO
					.selectDetallePrefacturaByRegistroCosiderado(
							"tme840315kt6", false);
			if (listDetallePrefacturaTO != null) {
				for (int i = 0; i < listDetallePrefacturaTO.size(); i++) {
					detallePrefacturaTO = ((ArrayList<DetallePrefacturaTO>) listDetallePrefacturaTO)
							.get(i);

					System.out.println("DETALLEPREFACTURA");
					ImprimirTO.Imprime(detallePrefacturaTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR BITACORASERVICIO");
			detallePrefacturaTO = detallePrefacturaDAO
					.selectdetalleprefacturaByBitacoraServcio(1);

			if (detallePrefacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEPREFACTURA");

				for (int x = 0; x < detallePrefacturaTO
						.getListIdDetallePrefactura().length; x++) {
					System.out.println("IDDETALLEPREFACTURA");
					System.out.println(detallePrefacturaTO
							.getListIdDetallePrefactura()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListConsiderado().length; x++) {
					System.out.println("CONSIDERADO");
					System.out
							.println(detallePrefacturaTO.getListConsiderado()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListClienteRfcTO().length; x++) {
					System.out.println("CLIENTERFC");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListClienteRfcTO()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO
						.getListBitacoraServicioTO().length; x++) {
					System.out.println("BITACORASERVICIO");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListBitacoraServicioTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR BITACORASERVICIO CONSIDERADO");
			detallePrefacturaTO = detallePrefacturaDAO
					.selectdetalleprefacturaByBitacoraServcioConsiderado(1,
							false);

			if (detallePrefacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEPREFACTURA");

				for (int x = 0; x < detallePrefacturaTO
						.getListIdDetallePrefactura().length; x++) {
					System.out.println("IDDETALLEPREFACTURA");
					System.out.println(detallePrefacturaTO
							.getListIdDetallePrefactura()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListConsiderado().length; x++) {
					System.out.println("CONSIDERADO");
					System.out
							.println(detallePrefacturaTO.getListConsiderado()[x]);
				}

				for (int x = 0; x < detallePrefacturaTO.getListClienteRfcTO().length; x++) {
					System.out.println("CLIENTERFC");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListClienteRfcTO()[x]);
				}
				for (int x = 0; x < detallePrefacturaTO
						.getListBitacoraServicioTO().length; x++) {
					System.out.println("BITACORASERVICIO");
					ImprimirTO.Imprime(detallePrefacturaTO
							.getListBitacoraServicioTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

		}

		catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// DETALLEFACTURA
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<DETALLEFACTURA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			DetalleFacturaDAO detalleFacturaDAO = fabricaMySQL
					.getDetalleFacturaDAO();
			DetalleFacturaTO detalleFacturaTO = new DetalleFacturaTO(1, 2);

			// insert

			/*if (detalleFacturaDAO.insertDetalleFactura(detalleFacturaTO)) {
				// detallePrefacturaDAO.insertDetallePrefactura(detallePrefacturaTO);
				System.out
						.println("+++++++++++++++++++ Insertado Correctamente");
			} else
				System.out.println("Falla en la insercion");
*/
			// actualiza

/*			DetalleFacturaTO detalleFacturaTO2 = new DetalleFacturaTO();
			detalleFacturaTO2.setIdDetallePreFactura(2);
			detalleFacturaTO2.setIdFactura(2);

			resultado = detalleFacturaDAO.updateDetalleFactura(detalleFacturaTO2,
					detalleFacturaTO);
			if (resultado == 1)
				System.out.println("Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");
*/
			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			detalleFacturaTO = detalleFacturaDAO.findByID(1, 2);
			if (detalleFacturaTO != null) {
				System.out.println("Busqueda exitosa");
				System.out.println("DETALLEFACTURA");
				ImprimirTO.Imprime(detalleFacturaTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECTDETALLEFACTURA +**");
			java.util.Collection<DetalleFacturaTO> listDetalleFacturaTO = detalleFacturaDAO
					.selectDetalleFactura();
			if (listDetalleFacturaTO != null) {
				for (int i = 0; i < listDetalleFacturaTO.size(); i++) {
					detalleFacturaTO = ((ArrayList<DetalleFacturaTO>) listDetalleFacturaTO)
							.get(i);

					System.out.println("DETALLEFACTURA");
					ImprimirTO.Imprime(detalleFacturaTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR DETALLEPREFACTURA");
			detalleFacturaTO = detalleFacturaDAO
					.selectDetalleFacturaByDetallePrefactura(1);

			if (detalleFacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEFACTURA");

				for (int x = 0; x < detalleFacturaTO.getListFacturaTO().length; x++) {
					System.out.println("FACTURA");
					ImprimirTO.Imprime(detalleFacturaTO.getListFacturaTO()[x]);
				}
				
				for (int x = 0; x < detalleFacturaTO.getListDetallaPrefacturaTO().length; x++) {
					System.out.println("PREFACTURA");
					ImprimirTO
							.Imprime(detalleFacturaTO.getListDetallaPrefacturaTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out
					.println("------------------- BUSQUEDA POR FACTURA");
			detalleFacturaTO = detalleFacturaDAO
					.selectDetalleFacturaByFactura(2);

			if (detalleFacturaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DETALLEFACTURA");

				
				for (int x = 0; x < detalleFacturaTO.getListDetallaPrefacturaTO().length; x++) {
					System.out.println("PREFACTURA");
					ImprimirTO
							.Imprime(detalleFacturaTO.getListDetallaPrefacturaTO()[x]);
				}
				
				for (int x = 0; x < detalleFacturaTO.getListFacturaTO().length; x++) {
					System.out.println("FACTURA");
					ImprimirTO.Imprime(detalleFacturaTO.getListFacturaTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
			
		}

		catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}

}
